#pragma once
#include <cstring>
#include "../opengl.hpp"

namespace opengl {

void init_opengl(const opengl_config &cfg) {
    std::memcpy(&global_opengl_config, &cfg, sizeof(opengl_config));
    if (cfg.load_function != nullptr) {
        load_functions(cfg.load_function);
    }
    if (cfg.debug_msg_callback != nullptr) {
        api::glDebugMessageCallback(cfg.debug_msg_callback, nullptr);
    }
    api::glEnable(0x809D); // GL_MULTISAMPLE
}
void clear_buffers() {
    auto color = global_opengl_config.clear_color;
    api::glClear(OPENGL_COLOR_BUFFER_BIT | 0x0100); // GL_DEPTH_BUFFER_BIT
    api::glClearColor(color[0], color[1], color[2], color[3]);
}

} // namespace opengl